/*
class Animal{
   // String name;
    int age;
    public void shout(){

        System.out.println("动物发出吼叫声");
    }





}
public class Test {
    String name = "张三";



    public static void main(String[] args) {
        //匿名内部类
     */
/*   new  Animal(){

            public void shout(){
                System.out.println("狗发出汪汪叫");
            }
           public void func1(){
               System.out.println(""+name);



           }

        };

*//*

        //匿名内部类的格式！
   */
/* new 类型 (){
        重写方法;
    };*//*

    }
}
*/
//接口的实现
//创建一个Animal接口
/*abstract class   Animal{
  abstract   void shout();

}*/
//创建一个Dog类，实现Animal接口
/*class Dog implements Animal{
    public void shout(){
        System.out.println("狗发出汪汪叫");
    }

}*/
//创建测试类
/*
public class Test {
    public static void main(String[] args) {
      */
/*  Dog dog1 = new Dog();
        dog1.shout();*//*


       new Animal(){
            public void shout(){
                System.out.println("狗发出汪汪叫");
            }

         }.shout();




    }
}
*/
// 外部类对静态内部类的访问情况：
/*class Animal{
    String name;
    public void test(){
        Test.func1();
        System.out.println(Test.age);
    }


    static class Test{
        static   int age;
        public static void func1(){
            System.out.println("静态内部类中的静态成员方法");
        }



    }

}*/
//外部类对实例内部类的访问情况：
/*
class Animal{
    String name;
    public void test2(){
        System.out.println(Test2.a);
        Test2 test2 = new Test2();
        test2.shout();
    }
    public class Test2{
        static int a = 10;
        public void shout(){
            System.out.println("调用实例化中的非静态方法");
        }
    }
}
*/
//外部类对局部内部类的访问
class Animal{



    public void func1(){
        class Test3{
             static  int a ;
            public void func2(){
                System.out.println("调用局部内部类中非静态方法");
            }
        // Test3 test3 = new Test3();
        }
        Test3 test3 = new Test3();
       test3.func2();




    }




}





public class Test {
    public static void main(String[] args) {
       Animal animal = new Animal();
        animal.func1();
    }
}

























